The present invention relates generally to data networks, and more particularly to adaptive fragmentation techniques to be implemented over data networks.
The merging of computers and communications has had a profound influence on the way computer systems are organized. As computer technology advances, the role of computer networks steadily increases. Various types of computer networks include internetworks (e.g., the Internet), local area networks (LANs), metropolitan area networks (MANs), and wide area networks (WANs).
The use of networks such as LANs or WANs allows data or other information to be exchanged over large distances at a reasonable speed, and at relatively low cost. Although conventional network systems are advantageous for a variety of reasons, implementing and maintaining such networks presents an ongoing problem. Moreover, a network may span a plurality of separate LANs and/or WANs to create the impression of a unified network. This has greatly complicated the implementation, maintenance, and control of system parameters within the network.
FIG. 1A shows an example of a link 100 which forms part of a data network. The link 100 may comprise a physical or virtual circuit (e.g. Frame Relay circuit, Multilink PPP circuit, etc.) which provides a dedicated communication path between host device 114 and client device 102. For example, the link 100 may comprise at least one Frame Relay virtual circuit for transmitting data between client system 102 and host system 114. A Frame Relay virtual circuit represents a high-speed packet switching path used in wide area networks. Its use has become very popular for LAN-to-LAN connections across remote distances. A consumer may lease a Frame Relay virtual circuit between two points and send packets of information between the two points. It is also possible to lease Frame Relay circuits between a given site and multiple other sites.
As shown in FIG. 1A, the link 100 comprises a plurality of individual network elements or devices (e.g., 104A, 104B, 108) which are part of a wide area network (WAN) 150. In the example of FIG. 1, network devices 104A, 104B, and 108 each correspond to a respective traffic handling device (THD), such as, for example, a router or switch, that is part of the wide area network 150 and used to form link 100. Each of the traffic handling devices 104A, 104B are typically statically configured by a system administrator using a command line interface (CLI) via a local console (not shown). The virtual circuit between THD 104A and THD 104B is provided by a WAN cloud network 110. The WAN cloud may include a plurality of THDs (108) which are statically configured by a system administrator to provide virtual circuits.
Typically, different portions of the wide area network 150 are owned and/or managed by separate entities. For example, a service provider may manage or control the gateways (104A, 104B) for accessing the wide area network from either the client machine 102 or host machine 114. Alternatively, the gateways may be managed and/or controlled by the end user. Further, the WAN cloud 110 may be managed or controlled by a separate entity such as, for example, a data network company (e.g., AT&T, MCI, Sprint, etc.). Additionally, it will be appreciated that most operating parameters of conventional traffic handling devices (such as those shown in FIG. 1A) are typically derived from static on-board configurations having minimal, if any, interaction with the provisioning switching devices in the network and no interaction with the far end devices that terminate the circuit.
An alternate embodiment of the link 100 of FIG. 1A is shown in FIG. 1B. FIG. 1B shows a schematic block diagram of a specific embodiment of link 190 which may be used for implementing the adaptive fragmentation technique of the present invention. In the example of FIG. 1B, link 190 comprises a plurality of traffic handling devices (THDs) which collectively provide a dedicated communication path between host device 193 and client device 191. The plurality of THDs of link 190 comprise two “edge” traffic handling devices THD1, THD4 (182, 188), and comprise two “interior” traffic handling devices THD2, THD3 (184, 186).
Network Traffic
As explained above, there currently exists a variety of different types of data networks which may be used for transmitting data between users at different geographic locations. Each of network may be configured to transmit data in accordance with different protocols such as, for example, Frame Relay, ATM, ISDN, TCP/IP, Multilink PPP, etc. Moreover, the rate of data transmission across each of these networks may vary depending upon different system perimeters such as, for example, available bandwidth, Quality of Service, etc. Furthermore, each of these data networks may be used to carry or transmit a variety of different types of traffic including, for example, real-time traffic, and non-real-time traffic. Real-time traffic generally refers to time critical traffic such as, for example, voice traffic, video traffic, audio traffic, etc. Non-real-time traffic generally refers to non-time critical traffic such as, for example, data traffic.
Typically, when both real-time traffic and non-real-time are carried across a relatively low speed link (e.g. links that have a data transmission speed of less than 400K bits per second), relatively long non-real-time packets (e.g. long data packets) need to be fragmented into a sequence of shorter frames in order to control delay and delay variation for real-time traffic carried across that link. In the context of this application, a network link refers to any communication path which may exist between two network devices such as, for example, a virtual circuit, a physical interface, a multi link PPP session, etc.
For example, assuming that a particular network link is used for carrying both real-time and non-real-time traffic and that the network link has a data transmission speed of 64K bits per second, if it is desired to transmit a data packet of 12K bits without using fragmentation, then approximately 200 milliseconds would be required for transmitting the data packet across this link. Such a transmission delay would be undesirable in many of today's data networks, particularly in networks which are used for real-time data communication.
For this reason, many conventional data transmission protocols have adopted a standard of setting a maximum allowable transmission delay between link in a network such as, for example, 150 milliseconds. Accordingly, in networks which have adopted this standard, fragmentation may be used in order to fragment long data packets into a sequence of shorter frames to control delay and delay variation, particularly for a real-time traffic.
Currently, there are a variety of standards which specify how to implement fragmentation for different transmission protocols. One such standard is the Frame Relay Fragmentation Implementation Agreement (FRF.12), by Andrew G. Malis, published by the Frame Relay Forum of Fremont, Calif., 1997, incorporated herein by reference in its entirety for all purposes. Another standard is the PPP Multi Link Protocol, set forth in RFC Document No. 1717 (IETF, Sklower, et al., November 1994), incorporated herein by reference in its entirety for all purposes. There are also a number of other standards for implementing fragmentation in networks which use different transmission protocols such as, for example, ATM, DOCSIS, TCP/IP, SONNET, etc.
Typically, in most conventional networks which implement fragmentation, the service provider or network manager manually configures the maximum allowable fragmentation size on each link of the network. This information is typically stored in a configuration file on each of the network devices. After being reset, or upon initialization, each network device uses the information from its configuration file to statically configure itself to implement fragmentation for any traffic which exceeds the maximum allowable fragmentation size (MAX_FRAG).
One disadvantage of fragmentation is that it consumes a significant portion of network resources, including CPU power of each network device. Another disadvantage of conventional techniques for implementing fragmentation is that, once fragmentation is enabled on a particular link, it will remain enabled, and will further remain statically configured to fragment packets which have a size greater than the MAX_FRAG_SIZE regardless of whether or not there is any real-time traffic currently being carried on that link. A further disadvantage of fragmentation is that its use increases the amount of overhead needed for routing, switching, or forwarding traffic at a particular network device.
Thus, it will be appreciated that many conventional fragmentation techniques are not efficient. In light of the above, there is a continual need to improve upon techniques for transmitting information in data networks which carry both real-time and non-real-time data.